This disclosure relates to distributed application management using an automated deployment process. More specifically, the disclosure relates to that maintaining a computer network using configuration files to generate compressed deployment files.
Networked computing environments frequently employ a large number of computers. A large number of applications are oftentimes executing on each individual computer at any given time. Many computers in the environment will have a single operating system (or operating system kernel) controlling a plurality of virtualized computing instances. Such instances are sometimes known as containers. Each container may be associated with a specific user (or a specific user space) and containers may be effectively isolated from each other. One container will often run multiple applications, each with its own maintenance and upgrade cycle. Similarly, individual containers and their host computers will be subject to periodic maintenance and upgrades. A larger quantity of applications typically results in greater complexity, especially with respect to application maintenance.
Given the distributed nature of computing in such networked computing environments, application maintenance and upgrade can become a very tedious and time-consuming process. Especially in a containerized environment as described above, these tasks can become exceptionally labor-intensive. The task of installing an update to an application for a single computer host with multiple isolated containers, where each container runs identical instances of the same application, can be repetitive, laborious, and lead to errors. Such errors may be serious in the event that, for example, an application is erroneously updated with no backup or restore point for the application. Additionally, update files may become corrupted when they are transmitted from a deployment computer to a target computer.
Known processes suffer from several limitations in addressing the problems listed above. For example, some known systems involve purely manual and brute force methods. For a computer with multiple isolated containers running identical application instances, a maintenance engineer will often need to repeat the same upgrade process for each container until all application instances have been updated. Moreover, some known processes include no provision for tracking which container or folder has already received an update. A maintenance engineer may be required to manually maintain a separate running record of updated instances versus instances to be updated. It may simply be too time-consuming to manually create backups of each application (or application file(s)) that require updates. Similarly, updating an application within a container will often involve stopping that container, updating the application, and then starting the container. In some known systems, the stop and start procedures must be repeated manually each time. These procedures slow down the process further and, if inadvertently missed, result in errors and further rework.